// promise.race 方法

const fs = require('fs');

function readFile (path, isSetError) {
  return new Promise((resolve, reject) => {
    fs.readFile(path, 'utf8', (err, data) => {
      if (err || isSetError)
        reject('请求失败了');
      
      const resData = JSON.parse(data);

      resolve(resData);
    })
  })
}

// Promise.race 接收一个 iteratable(可迭代)类型的数据 -> Array Set Map
Promise.race([
  // readFile('./data/user.json'),
  // readFile('./data/course.json'),
  // readFile('./data/userCourse.json', true)
])
.then(res => {
  console.log(res);
})
.catch(err => {
  console.log(err);
})

/**
 * race: 比赛、角逐、赛马
 * 
 * 1. 谁先完成就返回那个promise的结果， 无论是fullfilled 还是 rejected
 * 
 * 2. iteratable内部如果没有元素，就一直是 pending 状态
 * 
 * 应用场景：
 * 测试资源或者接口的响应速度
 */

